// 通过传参决定本次功能使用get还是post

// ajax({
//   method:"get",
//   success:()=>{},
//   error(){},
//   data:{},
//   url:""
// });

// 1. 处理默认（可选）参数
function ajax({method="get", success, data={}, url, error}={}){
  // 2. 处理必传参数
  if(!success){
    console.error("缺少必传配置success")
    return;
  }
  if(!url){
    console.error("缺少必传配置url")
    return;
  }
  // 3. 解析对象，解析成前端向后端发送数据的格式：key=val&key=val
  let str = "";
  for(let key in data){
    str += `${key}=${data[key]}&`;
  }
  // 4. 如果是get请求，将数据拼接到url
  if(method === "get"){
    url += "?" + str.slice(0,-1);
  }
  // 5. 开启ajax
  const xhr = new XMLHttpRequest();
  xhr.open(method, url, true);
  if(method === "get"){
    xhr.send();
  }else{
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.send( str.slice(0,-1) );
  }
  xhr.onload = function(){
    if(xhr.status === 200){
      success( xhr.responseText );
    }else{
      error && error( xhr.status );
    }
  }
}

// get和post的区别
  // - ...
